package com.athena.dal.entities;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * The persistent class for the learningPlace database table.
 * 
 */
@Entity
@Table(name = "learningPlace")
public class LearningPlace implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(unique = true, nullable = false)
	private int id;

	@Column(length = 45)
	private String building;

	private int capacity;

	private int floor;

	@Column(nullable = false, length = 45)
	private String name;

	@Column(nullable = false, length = 1)
	private String type;

	@Column(nullable = false)
	private Timestamp updatedAt;

	// bi-directional many-to-one association to ExaminationSchedule
	@OneToMany(mappedBy = "learningPlace")
	private Set<ExaminationSchedule> examinationSchedules;

	// bi-directional many-to-one association to Routine-Rules
	@OneToMany(mappedBy = "learningPlace")
	private Set<RoutineRules> routineRules;

	// bi-directional many-to-one association to Routine-Rules
	@OneToMany(mappedBy = "learningPlace")
	private Set<RoutineInstance> routineInstance;

	public LearningPlace() {
	}

	public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getBuilding() {
		return this.building;
	}

	public void setBuilding(String building) {
		this.building = building;
	}

	public int getCapacity() {
		return this.capacity;
	}

	public void setCapacity(int capacity) {
		this.capacity = capacity;
	}

	public int getFloor() {
		return this.floor;
	}

	public void setFloor(int floor) {
		this.floor = floor;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getType() {
		return this.type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public Timestamp getUpdatedAt() {
		return this.updatedAt;
	}

	public void setUpdatedAt(Timestamp updatedAt) {
		this.updatedAt = updatedAt;
	}

	public Set<ExaminationSchedule> getExaminationSchedules() {
		return this.examinationSchedules;
	}

	public void setExaminationSchedules(
			Set<ExaminationSchedule> examinationSchedules) {
		this.examinationSchedules = examinationSchedules;
	}

	public Set<RoutineRules> getRoutineRules() {
		return routineRules;
	}

	public void setRoutineRules(Set<RoutineRules> routineRules) {
		this.routineRules = routineRules;
	}

	public Set<RoutineInstance> getRoutineInstance() {
		return routineInstance;
	}

	public void setRoutineInstance(Set<RoutineInstance> routineInstance) {
		this.routineInstance = routineInstance;
	}
}